<template>
	<view class="home">
		<!-- 顶部轮播图 -->
		<swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000">
			<swiper-item v-for="(item, index) in swipers" :key="index">
				<image :src="item.img" mode=""></image>
			</swiper-item>
		</swiper>
		
		<!-- 导航区域 -->
		<view class="nav">
			<!-- 导航子元素 -->
			<view class="nav_item" v-for="(item, index) in navs" :key="index"
			@click="navItemClick(item.path)">
				<!-- iconfont 图标 -->
				<view :class="item.icon"></view>
				<text>{{item.title}}</text>
			</view>
		</view>
		
		<!-- 推荐商品 -->
		<view class="hot_goods">
			<view class="hot_title">
				推荐商品
			</view>
			<!-- 使用商品列表组件 ，:goods 绑定 子组件需要的变量， "goods" 将本页的数据传递给商品列表子组件 -->
			<goodlist :goods="goods" @clickGoodDetail="goGoodsDetail"></goodlist>
		</view>
	</view>
</template>

<script>
	import goodlist from '../../components/goods-list/goods-list.vue'
	export default {
		data() {
			return {
				// 轮播i图数据
				swipers: [],
				// 导航数据
				navs:[
					{
						// 导航icon
					icon: 'iconfont icon-ziyuan',
					// 导航名称
					title:'超市',
					// 跳转路径
					path:'/pages/goods/goods'
					},
					{
						// 导航icon
					icon: 'iconfont icon-guanyuwomen',
					// 导航名称
					title:'联系我们',
					// 跳转路径
					path:'/pages/contact/contact'
					},
					{
						// 导航icon
					icon: 'iconfont icon-tupian',
					// 导航名称
					title:'社区图片',
					// 跳转路径
					path:'/pages/pics/pics'
					},
					{
						// 导航icon
					icon: 'iconfont icon-shipin',
					// 导航名称
					title:'学习视频',
					// 跳转路径
					path:'/pages/videos/videos'
					}
				],
				// 推荐商品列表数据
				goods: []
			}
		},
		onLoad() {
			this.getSwipers()
			this.getGoods()
		},
		components:{
			goodlist
		},
		methods: {
			// 获取轮播图数据
			async getSwipers() {
				const res = await this.$myRequest({
					url: '/getlunbo',
					data: {
						pageindex:1
					}
				})
				this.swipers = res.data.message
			},
			
			// 获取推荐商品列表数据
			async getGoods() {
				const res = await this.$myRequest({
					url: '/getgoods'
				})
				this.goods = res.data.message
			},
			
			// 导航跳转
			navItemClick(path){
				// 跳转页面
				uni.navigateTo({
					url:path
				})
			},
			
			// 跳转商品详情页
			goGoodsDetail(id) {
				uni.navigateTo({
					url: '/pages/goods-detail/goods-detail?id=' + id
				})
				console.log(id)
			}
		}
	}
</script>

<style lang="scss">
	.home{
		// 轮播图组件样式
		swiper{
			image{
				height: 100%;
				width: 100%;
			}
		}
		
		// 导航区域样式
		.nav{
			display: flex;
			justify-content: space-around;
			.nav_item{
				text-align: center;
					view {
						width: 120rpx;
						height: 120rpx;
						background-color: $shop-color;
						border-radius: 60rpx;
						margin: 10rpx auto;
						// 设置行高 会垂直居中
						line-height: 120rpx;
						color: #fff;
						font-size: 40rpx;
					}
					text{
						font-size: 30rpx;
					}
			}
		}
		
		// 推荐商品样式
		.hot_goods{
			background: #eee;
			margin-top: 20rpx;
			// padding-top: 10rpx;
			overflow: hidden;
			// 推荐商品 样式
			.hot_title{
				// padding: 30rpx;
				height: 100rpx;
				color: $shop-color;
				line-height: 100rpx;
				text-align: center;
				// 字符间距
				letter-spacing: 20rpx;
				background-color: #fff;
				margin: 7rpx 0 ;
				font-size: 50rpx;
			}
			
			// 商品列表样式
			.goods{
				padding: 0 15rpx;
				background-color: #fff;
				display: flex;
				// 多行
				flex-wrap: wrap;
				// 两边间距对其
				justify-content: space-between;
				// 商品列表子元素样式
				.goods_item{
					width: 50%;
					margin: 10rpx 0;
					padding: 15rpx;
					// 缩小盒子里面的内容而不把盒子变大
					box-sizing: border-box;
					image{
						width: 80%;
						height: 150rpx;
						display: block;
						// 水平居中
						margin: 0 auto;
					}
					// text-align: center;
					
					// 价格字体设置
					.price{
						color: $shop-color;
						font-size: 36rpx;
						
						// 原价样式. 获取元素内第二个text元素
						text:nth-child(2){
							color: #999999;
							font-size: 28rpx;
							margin-left: 20rpx;
							// line-through	定义穿过文本下的一条线。
							text-decoration: line-through;
						}
					}
					
					// 商品标题样式
					.name{
						font-size: 30rpx;
						line-height: 50rpx;
						padding-top: 15rpx;
						padding-bottom: 10rpx;
					}
				}
				
			}
		}
	}
	
</style>
